home *** CD-ROM | disk | FTP | other *** search
- // ===============================================================
- // Vertex Program: Eye shader
- // Description: used in character eyes
- // Last Update: 15/10/2003
- // Coder: Tiago Sousa
- // ===============================================================
-
- #include "../CGVPMacro.csi"
-
- VertAttributes { POSITION_3 TEXCOORD0_2 NORMAL_3 }
-
- // setup vertex components
- MainInput
- {
- // common model view matrix
- VIEWPROJ_MATRIX,
- uniform float4 CameraPos,
- uniform float4 LightPos,
- uniform float3x3 ObjToCubeSpace,
- uniform float4x4 ObjMatrix
- }
-
- DeclarationsScript
- {
-
- // vertex input
- IN_T0_N
- // vertex output
- OUT_T0_T1_T2_T3_C0
- }
-
- // output vertex position
- PositionScript = PosCommon
-
- CoreScript
- {
- OUT.Tex0.xy =IN.TexCoord0.xy;
- OUT.Tex1.xy =IN.TexCoord0.xy;
-
-
- // transform normal
- float3 normalVector=IN.Normal.xyz;
-
- //float fLigthDist=sqrt((LightPos.xyz - vPos.xyz)*(LightPos.xyz - vPos.xyz));
-
- float3 eyeVector = normalize(CameraPos.xyz - vPos.xyz);
- float fDot= dot(eyeVector, normalVector.xyz);
- float3 reflVector = (2*normalVector.xyz*fDot-eyeVector.xyz);
- OUT.Tex2.xyz = reflVector.xyz;
- OUT.Tex3.xyz = reflVector.xyz;
-
-
- float3 lightVector = normalize(LightPos.xyz-vPos.xyz);
- fDot = dot(lightVector, normalVector);
- OUT.Color.xyz=max(fDot, 0);
-
- return OUT;
- }
-